package com.cskayan.javase.object._7wrapper;

/**
 * 根据自动装箱和拆箱,我们可以在:
 *      不方便给出一个基本数据类型返回值时
 *      给出它对应的包装类型返回值
 *
 * @since 15:57
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo4 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 45, 5};
        System.out.println(getMax(arr));

        arr = null;
        System.out.println(getMax2(arr));
    }

    // 获取数组的最大值
    public static int getMax(int[] arr) {
        int max = arr[0];
        for (int ele : arr) {
            if (ele > max) {
                max = ele;
            }
        }
        return max;
    }

    // 以上方法,要求方法能够接收长度为0或者null的数组输入
    public static Integer getMax2(int[] arr) {
        if (arr == null || arr.length == 0){
            System.out.println("输入的数组不正常,请重新输入!");
            /*
                这个返回值如果直接返回一个int整数是不好给出的
                那咋办呢?
                开发比较常见的做法有两种:
                    1.用包装类型替代基本数据类型返回值(这种不多见,只是一种解决方案)
                    2.抛出异常,表示方法终止.
             */
            return null;
        }
        int max = arr[0];
        for (int ele : arr) {
            if (ele > max) {
                max = ele;
            }
        }
        return max;
    }
}
